Getting Started
1. Introduction
- I: Getting Started
- II: devonfw-ide
- III: devonfw for Java (devon4j)
- 8. Architecture
- 9. Coding Conventions
- 10. Layers
- 11. Guides
- 11.1. Dependency Injection
- 11.2. Configuration
- 11.3. Java Persistence API
- 11.4. Auditing
- 11.5. Transaction Handling
- 11.6. SQL
- 11.7. Database Migration
- 11.8. Logging
- 11.9. Security
- 11.10. Access-Control
- 11.11. JSON Web Token(JWT)
- 11.12. Validation
- 11.13. Aspect Oriented Programming (AOP)
- 11.14. Exception Handling
- 11.15. Internationalization
- 11.16. XML
- 11.17. JSON
- 11.18. REST
- 11.19. SOAP
- 11.20. Service Client
- 11.21. Testing
- 11.22. Transfer-Objects
- 11.23. Bean-Mapping
- 11.24. Datatypes
- 11.25. CORS support
- 11.26. BLOB support
- 11.27. Java Development Kit
- 11.28. Microservices in devonfw
- 11.29. Application Performance Management
- 11.30. Caching
- 11.31. Feature-Toggles
- 11.32. Accessibility
- 11.33. JEE
- 11.34. Messaging Services
- 11.35. Messaging
- 11.36. Monitoring
- 11.37. Full Text Search
- 12. Tutorials
- IV: devon4ng
- 13. Architecture
- 14. Layers
- 15. Guides
- 16. Angular
- 16.1. Accessibility
- 16.2. Angular Elements
- 16.3. Angular Lazy loading
- 16.4. Angular Library
- 16.5. Angular Material Theming
- 16.6. Angular Progressive Web App
- 16.7. APP_INITIALIZER
- 16.8. Component Decomposition
- 16.9. Consuming REST services
- 16.10. Error Handler in angular
- 16.11. File Structure
- 16.12. Internationalization
- 16.13. Routing
- 16.14. Testing
- 16.15. Update Angular CLI
- 16.16. Upgrade devon4ng Angular and Ionic/Angular applications
- 16.17. Working with Angular CLI
- 17. Ionic
- 18. Layouts
- 19. NgRx
- 20. Cookbook
- V: devon4net
- VI: devon4node
- 30. devon4node Architecture
- 31. Layers
- 32. Guides
- 32.1. Key Principles
- 32.2. devon4node CLI
- 32.3. Code Generation
- 32.4. Coding Conventions
- 32.5. Dependency Injection
- 32.6. Configuration Module
- 32.7. Auth JWT module
- 32.8. Swagger
- 32.9. TypeORM
- 32.10. Serializer
- 32.11. Validation
- 32.12. Logger
- 32.13. Mailer Module
- 32.14. Importing your ESLint reports into SonarQube
- 33. devon4node applications
- VII: Choosing your Database
- VIII: devonfw shop floor
- IX: cicdgen
- X: Production Line Templates
- XI: CobiGen — Code-based incremental Generator
- XII: MrChecker - devon testing tool
- XIII: MyThaiStar
- XIV: Contributing
- XV: Release Notes
- 91. devonfw Release notes 2020.04
- 92. devonfw Release notes 3.2 “Homer”
- 93. devonfw Release notes 3.1 “Goku”
- 94. devonfw Release notes 3.0 “Fry”
- 95. devonfw Release notes 2.4 “EVE”
- 96. devonfw Release notes 2.3 "Dash"
- 97. devonfw Release notes 2.2 "Courage"
- 97.1. Production Line Integration
- 97.2. OASP4js 2.0
- 97.3. A new OASP Portal
- 97.4. New Cobigen
- 97.5. MyThaiStar: New Restaurant Example, reference implementation & Methodology showcase
- 97.6. The new OASP Tutorial
- 97.7. OASP4j 2.4.0
- 97.8. Microservices Netflix
- 97.9. devonfw distribution based on Eclipse OOMPH
- 97.10. Visual Studio Code / Atom
- 97.11. More I18N options
- 97.12. Spring Integration as devonfw Module
- 97.13. devonfw Harvest contributions
- 97.14. More Deployment options to JEE Application Servers and Docker/CloudFoundry
- 97.15. Devcon on Linux
- 97.16. New OASP Incubators
- 98. Release notes devonfw 2.1.1 "Balu"
1.1. What is devonfw?
Welcome to the devonfw platform. This is a product of the CSD (Custom Solution Development) industrialization effort to establish a standardized platform for custom software development within Capgemini APPS2. This platform is aimed at engagements, in which clients don’t specify the use of a predefined technology stack. In these cases we can offer a proven alternative as a result of our experience as a group.
devonfw is a development platform aiming for the standardization of processes and the boosting of productivity. It provides an architecture blueprint for server and client applications, alongside a set of tools to deliver a fully functional, out-of-the-box development environment.
The devonfw name is a registered trademark of , but the software and documentation included in devonfw are fully open source. Please refer to our OSS Compliance section for more information.
|
1.1.1. Building Blocks of the Platform
devonfw uses a state-of-the-art, open source, core reference architecture for the server (these days considered a commodity in the IT-industry) and on top of that an ever increasing number of high-value assets, which are developed by Capgemini.
1.1.2. The devonfw Technology Stack
devonfw is fully open source and consists of the following technology stacks:
Back-End Solutions
For server applications, devonfw includes the following solutions:
-
devon4j: Server implementation based on Java, Spring and Spring Boot.
-
devon4node: Server implementation based on NestJS.
1.1.3. Custom Tools
devonfw-ide
The devonfw-ide is not one monolithic program that is installed with a traditional executable; rather it’s a collection of scripts which are invoked via command line to automate several, repetetive development tasks. These scripts then interact with other tools, frameworks, and third-party IDEs to streamline the development workflow.
The advantage of this approach is, that you can have as many instances of the devonfw-ide on your machine as you need — for different projects with different tools, tool versions and configurations. No need for a physical installation and no tweaking of your operating system required!
Instances of the devonfw-ide do not interfere with each other, nor with other installed software. The package size of the devonfw-ide is initally very small, the setup is simple, and the included software is portable.
Platforms
It supports the following platforms:
Build-Systems
It supports the following build-systems:
| Other IDEs, platforms, or tools can easily be integrated as commandlets. |
CobiGen
CobiGen is a code generator included in the devonfw-ide, that allows users to generate the project structure and large parts of the application component code. This saves a lot of time, which is usually wasted on repetitive engineering tasks and/or writing boilerplate code.
Following the same philosophy as the devonfw-ide, CobiGen bundles a new command line interface (CLI), that enables the generation of code using only a few commands. This approach also allows us to decouple CobiGen from Eclipse and use it alongside VS Code or IntelliJ IDEA.
- I: Getting Started
- II: devonfw-ide
- III: devonfw for Java (devon4j)
- 8. Architecture
- 9. Coding Conventions
- 10. Layers
- 11. Guides
- 11.1. Dependency Injection
- 11.2. Configuration
- 11.3. Java Persistence API
- 11.4. Auditing
- 11.5. Transaction Handling
- 11.6. SQL
- 11.7. Database Migration
- 11.8. Logging
- 11.9. Security
- 11.10. Access-Control
- 11.11. JSON Web Token(JWT)
- 11.12. Validation
- 11.13. Aspect Oriented Programming (AOP)
- 11.14. Exception Handling
- 11.15. Internationalization
- 11.16. XML
- 11.17. JSON
- 11.18. REST
- 11.19. SOAP
- 11.20. Service Client
- 11.21. Testing
- 11.22. Transfer-Objects
- 11.23. Bean-Mapping
- 11.24. Datatypes
- 11.25. CORS support
- 11.26. BLOB support
- 11.27. Java Development Kit
- 11.28. Microservices in devonfw
- 11.29. Application Performance Management
- 11.30. Caching
- 11.31. Feature-Toggles
- 11.32. Accessibility
- 11.33. JEE
- 11.34. Messaging Services
- 11.35. Messaging
- 11.36. Monitoring
- 11.37. Full Text Search
- 12. Tutorials
- IV: devon4ng
- 13. Architecture
- 14. Layers
- 15. Guides
- 16. Angular
- 16.1. Accessibility
- 16.2. Angular Elements
- 16.3. Angular Lazy loading
- 16.4. Angular Library
- 16.5. Angular Material Theming
- 16.6. Angular Progressive Web App
- 16.7. APP_INITIALIZER
- 16.8. Component Decomposition
- 16.9. Consuming REST services
- 16.10. Error Handler in angular
- 16.11. File Structure
- 16.12. Internationalization
- 16.13. Routing
- 16.14. Testing
- 16.15. Update Angular CLI
- 16.16. Upgrade devon4ng Angular and Ionic/Angular applications
- 16.17. Working with Angular CLI
- 17. Ionic
- 18. Layouts
- 19. NgRx
- 20. Cookbook
- V: devon4net
- VI: devon4node
- 30. devon4node Architecture
- 31. Layers
- 32. Guides
- 32.1. Key Principles
- 32.2. devon4node CLI
- 32.3. Code Generation
- 32.4. Coding Conventions
- 32.5. Dependency Injection
- 32.6. Configuration Module
- 32.7. Auth JWT module
- 32.8. Swagger
- 32.9. TypeORM
- 32.10. Serializer
- 32.11. Validation
- 32.12. Logger
- 32.13. Mailer Module
- 32.14. Importing your ESLint reports into SonarQube
- 33. devon4node applications
- VII: Choosing your Database
- VIII: devonfw shop floor
- IX: cicdgen
- X: Production Line Templates
- XI: CobiGen — Code-based incremental Generator
- XII: MrChecker - devon testing tool
- XIII: MyThaiStar
- XIV: Contributing
- XV: Release Notes
- 91. devonfw Release notes 2020.04
- 92. devonfw Release notes 3.2 “Homer”
- 93. devonfw Release notes 3.1 “Goku”
- 94. devonfw Release notes 3.0 “Fry”
- 95. devonfw Release notes 2.4 “EVE”
- 96. devonfw Release notes 2.3 "Dash"
- 97. devonfw Release notes 2.2 "Courage"
- 97.1. Production Line Integration
- 97.2. OASP4js 2.0
- 97.3. A new OASP Portal
- 97.4. New Cobigen
- 97.5. MyThaiStar: New Restaurant Example, reference implementation & Methodology showcase
- 97.6. The new OASP Tutorial
- 97.7. OASP4j 2.4.0
- 97.8. Microservices Netflix
- 97.9. devonfw distribution based on Eclipse OOMPH
- 97.10. Visual Studio Code / Atom
- 97.11. More I18N options
- 97.12. Spring Integration as devonfw Module
- 97.13. devonfw Harvest contributions
- 97.14. More Deployment options to JEE Application Servers and Docker/CloudFoundry
- 97.15. Devcon on Linux
- 97.16. New OASP Incubators
- 98. Release notes devonfw 2.1.1 "Balu"
1.2. Why should I use devonfw?
devonfw aims to provide a framework for the development of web applications based on the Java EE programming model. It uses the Spring framework as its Java EE default implementation.
1.2.1. Objectives
Standardization
We don’t want to keep reinventing the wheel for thousands of projects, for hundreds of customers, across dozens of countries. For this reason, we aim to rationalize, harmonize and standardize the development assets for software projects and industrialize the software development process.
Industrialization of Innovative Technologies & “Digital”
devonfw’s goal is to standardize & industrialize. But this applies not only to large volume, “traditional” custom software development projects. devonfw also aims to offer a standardized platform which contains a range of state-of-the-art methodologies and technology stacks. devonfw supports agile development by small teams utilizing the latest technologies for projects related to Mobile, IoT and the Cloud.
Efficiency
-
Up to 20% reduction in time to market, with faster delivery due to automation and reuse.
-
Up to 25% less implementation efforts due to code generation and reuse.
-
Flat pyramid and rightshore, ready for junior developers.
Quality
-
State-of-the-art architecture and design.
-
Lower cost on maintenance and warranty.
-
Technical debt reduction by reuse.
-
Risk reduction due to continuous improvement of individual assets.
-
Standardized, automated quality checks.
Agility
-
Focus on business functionality, not on technicalities.
-
Shorter release cycles.
-
DevOps by design — Infrastructure as Code.
-
Continuous Delivery pipeline.
-
On- and off-premise flexibility.
-
PoCs and prototypes in days not months.
1.2.2. Features
Everything in a Single ZIP
The devonfw distributions is packaged in a ZIP file that includes all the custom tools, software and configurations.
Having all the dependencies self-contained in the distribution’s ZIP file, users don’t need to install or configure anything. Just extracting the ZIP content is enough to have a fully functional devonfw.
devonfw — The Package
The devonfw platform provides:
-
Implementation blueprints for a modern cloud-ready server and a choice on JS-Client technologies (either open source Angular or a very rich and impressive solution based on commercial Sencha UI).
-
Quality documentation and step-by-step quick start guides.
-
Highly integrated and packaged development environment based around Eclipse and Jenkins. You will be ready to start implementing your first customer-specific use case in 2h time.
-
Iterative eclipse-based code-generator that understands "Java" and works on higher architectural concepts than Java-classes.
-
An example application as a reference implementation.
-
Support through a large community + industrialization services (Standard Platform as a Service) available in the iProd service catalog.
1.3. devonfw-ide Download and Setup
Please refer to our devonfw-ide Setup section.
2. Guides
Our goal is to provide a smooth starting experience to all users of devonfw, no matter how experienced they are or what their stakeholder role is. To achieve this, we provide a list of recommended guides here:
For Students and Junior Engineers:
For Senior Engineers and Architects:
For Team Leaders and Product Ambassadors:
- I: Getting Started
- II: devonfw-ide
- III: devonfw for Java (devon4j)
- 8. Architecture
- 9. Coding Conventions
- 10. Layers
- 11. Guides
- 11.1. Dependency Injection
- 11.2. Configuration
- 11.3. Java Persistence API
- 11.4. Auditing
- 11.5. Transaction Handling
- 11.6. SQL
- 11.7. Database Migration
- 11.8. Logging
- 11.9. Security
- 11.10. Access-Control
- 11.11. JSON Web Token(JWT)
- 11.12. Validation
- 11.13. Aspect Oriented Programming (AOP)
- 11.14. Exception Handling
- 11.15. Internationalization
- 11.16. XML
- 11.17. JSON
- 11.18. REST
- 11.19. SOAP
- 11.20. Service Client
- 11.21. Testing
- 11.22. Transfer-Objects
- 11.23. Bean-Mapping
- 11.24. Datatypes
- 11.25. CORS support
- 11.26. BLOB support
- 11.27. Java Development Kit
- 11.28. Microservices in devonfw
- 11.29. Application Performance Management
- 11.30. Caching
- 11.31. Feature-Toggles
- 11.32. Accessibility
- 11.33. JEE
- 11.34. Messaging Services
- 11.35. Messaging
- 11.36. Monitoring
- 11.37. Full Text Search
- 12. Tutorials
- IV: devon4ng
- 13. Architecture
- 14. Layers
- 15. Guides
- 16. Angular
- 16.1. Accessibility
- 16.2. Angular Elements
- 16.3. Angular Lazy loading
- 16.4. Angular Library
- 16.5. Angular Material Theming
- 16.6. Angular Progressive Web App
- 16.7. APP_INITIALIZER
- 16.8. Component Decomposition
- 16.9. Consuming REST services
- 16.10. Error Handler in angular
- 16.11. File Structure
- 16.12. Internationalization
- 16.13. Routing
- 16.14. Testing
- 16.15. Update Angular CLI
- 16.16. Upgrade devon4ng Angular and Ionic/Angular applications
- 16.17. Working with Angular CLI
- 17. Ionic
- 18. Layouts
- 19. NgRx
- 20. Cookbook
- V: devon4net
- VI: devon4node
- 30. devon4node Architecture
- 31. Layers
- 32. Guides
- 32.1. Key Principles
- 32.2. devon4node CLI
- 32.3. Code Generation
- 32.4. Coding Conventions
- 32.5. Dependency Injection
- 32.6. Configuration Module
- 32.7. Auth JWT module
- 32.8. Swagger
- 32.9. TypeORM
- 32.10. Serializer
- 32.11. Validation
- 32.12. Logger
- 32.13. Mailer Module
- 32.14. Importing your ESLint reports into SonarQube
- 33. devon4node applications
- VII: Choosing your Database
- VIII: devonfw shop floor
- IX: cicdgen
- X: Production Line Templates
- XI: CobiGen — Code-based incremental Generator
- XII: MrChecker - devon testing tool
- XIII: MyThaiStar
- XIV: Contributing
- XV: Release Notes
- 91. devonfw Release notes 2020.04
- 92. devonfw Release notes 3.2 “Homer”
- 93. devonfw Release notes 3.1 “Goku”
- 94. devonfw Release notes 3.0 “Fry”
- 95. devonfw Release notes 2.4 “EVE”
- 96. devonfw Release notes 2.3 "Dash"
- 97. devonfw Release notes 2.2 "Courage"
- 97.1. Production Line Integration
- 97.2. OASP4js 2.0
- 97.3. A new OASP Portal
- 97.4. New Cobigen
- 97.5. MyThaiStar: New Restaurant Example, reference implementation & Methodology showcase
- 97.6. The new OASP Tutorial
- 97.7. OASP4j 2.4.0
- 97.8. Microservices Netflix
- 97.9. devonfw distribution based on Eclipse OOMPH
- 97.10. Visual Studio Code / Atom
- 97.11. More I18N options
- 97.12. Spring Integration as devonfw Module
- 97.13. devonfw Harvest contributions
- 97.14. More Deployment options to JEE Application Servers and Docker/CloudFoundry
- 97.15. Devcon on Linux
- 97.16. New OASP Incubators
- 98. Release notes devonfw 2.1.1 "Balu"
2.1. Build Your First devonfw Application
JumpTheQueue is a small application based on the devonfw framework, which you can create yourself by following our simple step-by-step tutorial. By doing so, you will learn about the app development workflow and gain insight into the design of a professional business information system. Please visit the JumpTheQueue wiki and start working trough the tutorial HERE.
| The tutorial assumes you have successfully set up the devonfw-ide previously. |
You can also clone the project and explore the finished source code via:
git clone https://github.com/devonfw/jump-the-queue.git
- I: Getting Started
- II: devonfw-ide
- III: devonfw for Java (devon4j)
- 8. Architecture
- 9. Coding Conventions
- 10. Layers
- 11. Guides
- 11.1. Dependency Injection
- 11.2. Configuration
- 11.3. Java Persistence API
- 11.4. Auditing
- 11.5. Transaction Handling
- 11.6. SQL
- 11.7. Database Migration
- 11.8. Logging
- 11.9. Security
- 11.10. Access-Control
- 11.11. JSON Web Token(JWT)
- 11.12. Validation
- 11.13. Aspect Oriented Programming (AOP)
- 11.14. Exception Handling
- 11.15. Internationalization
- 11.16. XML
- 11.17. JSON
- 11.18. REST
- 11.19. SOAP
- 11.20. Service Client
- 11.21. Testing
- 11.22. Transfer-Objects
- 11.23. Bean-Mapping
- 11.24. Datatypes
- 11.25. CORS support
- 11.26. BLOB support
- 11.27. Java Development Kit
- 11.28. Microservices in devonfw
- 11.29. Application Performance Management
- 11.30. Caching
- 11.31. Feature-Toggles
- 11.32. Accessibility
- 11.33. JEE
- 11.34. Messaging Services
- 11.35. Messaging
- 11.36. Monitoring
- 11.37. Full Text Search
- 12. Tutorials
- IV: devon4ng
- 13. Architecture
- 14. Layers
- 15. Guides
- 16. Angular
- 16.1. Accessibility
- 16.2. Angular Elements
- 16.3. Angular Lazy loading
- 16.4. Angular Library
- 16.5. Angular Material Theming
- 16.6. Angular Progressive Web App
- 16.7. APP_INITIALIZER
- 16.8. Component Decomposition
- 16.9. Consuming REST services
- 16.10. Error Handler in angular
- 16.11. File Structure
- 16.12. Internationalization
- 16.13. Routing
- 16.14. Testing
- 16.15. Update Angular CLI
- 16.16. Upgrade devon4ng Angular and Ionic/Angular applications
- 16.17. Working with Angular CLI
- 17. Ionic
- 18. Layouts
- 19. NgRx
- 20. Cookbook
- V: devon4net
- VI: devon4node
- 30. devon4node Architecture
- 31. Layers
- 32. Guides
- 32.1. Key Principles
- 32.2. devon4node CLI
- 32.3. Code Generation
- 32.4. Coding Conventions
- 32.5. Dependency Injection
- 32.6. Configuration Module
- 32.7. Auth JWT module
- 32.8. Swagger
- 32.9. TypeORM
- 32.10. Serializer
- 32.11. Validation
- 32.12. Logger
- 32.13. Mailer Module
- 32.14. Importing your ESLint reports into SonarQube
- 33. devon4node applications
- VII: Choosing your Database
- VIII: devonfw shop floor
- IX: cicdgen
- X: Production Line Templates
- XI: CobiGen — Code-based incremental Generator
- XII: MrChecker - devon testing tool
- XIII: MyThaiStar
- XIV: Contributing
- XV: Release Notes
- 91. devonfw Release notes 2020.04
- 92. devonfw Release notes 3.2 “Homer”
- 93. devonfw Release notes 3.1 “Goku”
- 94. devonfw Release notes 3.0 “Fry”
- 95. devonfw Release notes 2.4 “EVE”
- 96. devonfw Release notes 2.3 "Dash"
- 97. devonfw Release notes 2.2 "Courage"
- 97.1. Production Line Integration
- 97.2. OASP4js 2.0
- 97.3. A new OASP Portal
- 97.4. New Cobigen
- 97.5. MyThaiStar: New Restaurant Example, reference implementation & Methodology showcase
- 97.6. The new OASP Tutorial
- 97.7. OASP4j 2.4.0
- 97.8. Microservices Netflix
- 97.9. devonfw distribution based on Eclipse OOMPH
- 97.10. Visual Studio Code / Atom
- 97.11. More I18N options
- 97.12. Spring Integration as devonfw Module
- 97.13. devonfw Harvest contributions
- 97.14. More Deployment options to JEE Application Servers and Docker/CloudFoundry
- 97.15. Devcon on Linux
- 97.16. New OASP Incubators
- 98. Release notes devonfw 2.1.1 "Balu"
2.2. Explore Our devonfw Sample Application
MyThaiStar is a complex sample app, that demonstrates the full capabilities of our framework. On this page we will describe how to download and launch the app on your system, so you can test the various functionalities it offers and explore its code.
| We assume you have successfully set up the devonfw-ide previously. |
-
In the root directory of a devonfw-ide directory, right click and select "Open Devon CMD shell here" from the Windows Explorer context menu. Then navigate to the main workspace and checkout the MyThaiStar Git repository like this:
cd workspaces/main git clone https://github.com/devonfw/my-thai-star.git -
Perform:
cd my-thai-star -
Execute:
devon eclipse ws-up -
Execute:
devon eclipse create-script -
Go to the root folder of the distribution and run
eclipse-main.bat -
In Eclipse navigate to
File > Import > Maven > Existing Maven Projects, then import the cloned project from your workspace by clicking the "Browse" button and selecting/workspaces/my-thai-star/java/mtsj/. -
Run the backend by right-clicking
SpringBootApp.javaand selectingRun as > Java Applicationin the context menu. The backend will start up and create log entries in the Eclipse Console tab.
-
Return to your command shell and perform:
cd angular -
Execute:
npm install -
Execute:
ng serve -
Once started, the frontend will be available at localhost:4200/restaurant. Login with the username and password
waiterand take a look at the various functionalities provided by MyThaiStar.
You should now take a look at both the front- and backend code and familiarize yourself with its structure and concepts, since most devonfw projects follow this exemplary implementation. Please visit the architecture overview pages of devon4ng and devon4j to learn more about the internal workings of front- and backend.
��= I S T I O S e r v i c e M e s h I m p l e m e n t a t i o n G u i d e





